package com.ruoyi.blog.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 【请填写功能名称】对象 tb_user
 *
 * @author ruoyi
 * @date 2024-03-08
 */
@Data
public class TbUser extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private String id;

    /**
     * 用户昵称
     */
    @Excel(name = "用户昵称")
    private String username;

    /**
     * 密码
     */
    @Excel(name = "密码")
    private String password;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    private String phone;

    private String userImage;

    /**
     * 个性签名
     */
    @Excel(name = "个性签名")
    private String sign;

    /**
     * 性别
     */
    @Excel(name = "性别")
    private String sex;

    /**
     * 出生日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /**
     * 用户等级
     */
    @Excel(name = "用户等级")
    private String userLevel;

    /**
     * 用户积分
     */
    @Excel(name = "用户积分")
    private String score;

    /**
     * 用户类型：1-普通用户，2-会员用户，3-内部用户
     */
    @Excel(name = "用户类型：1-普通用户，2-会员用户，3-内部用户")
    private String userType;

    /**
     * 是否锁定 0未锁定 1已锁定无法登陆
     */
    @Excel(name = "是否锁定 0未锁定 1已锁定无法登陆")
    private Boolean locked;

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("username", getUsername())
                .append("password", getPassword())
                .append("phone", getPhone())
                .append("sign", getSign())
                .append("sex", getSex())
                .append("birthday", getBirthday())
                .append("userLevel", getUserLevel())
                .append("score", getScore())
                .append("userType", getUserType())
                .append("locked", getLocked())
                .toString();
    }
}
